<?php
/**
 * adminusersEntry.php
 * 
 * (C) 2009, tetsuya.odaka(EzoGP).
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* 
 * AdminUSERSの登録をします。
 * 
 * author	; m.majima
 * date		; 2009/8/24
 * 
*/
// 前準備
include("../Myznala/myHeader.inc.php");

require_once("../Myznala/MyConverter.class.php");
require_once('../Myznala/MyDBConnection.class.php');
require_once('AdminusersDao.class.php');
	
/*
 * 変数定義
 */
// 遷移先のテンプレート名
$myTemplate="../admin/templates/adminusersEntry.tpl";
	
// パラメータをサニタイズして配列に入れる。
$cObj = new MyConverter();
$reqParm = $cObj->getRequestParameters();

if($reqParm == null ){
	//　初期画面処理
	$myTplData=array(
		// 表示ボタンのセット
		'button_array'	=>setButton(),
		'myLoginUser'	=>$myLoginUser,
		'myPageTitle'	=>'OpenPTA_UserEnty',
		'myAppName'		=>'admin'
	);
	// 後処理
	include("../Myznala/myFooter.inc.php");
	return;
}else{
	/*
	 * 入力エラーチェック；
	 * エラーがあれば、入力画面にもどす。	
	*/
	$cnObj = new MyDBConnection();
	$conn = $cnObj->getConnection(); // connection取得
	
	/* 
	 * 入力チェック関数（内部関数）でエラーを取り出す 
	*/
	$adminuserObj=new AdminusersDao();
	$myErrArray = validate($conn, &$reqParm, &$adminuserObj);
	
	// エラーありの場合
	if(count($myErrArray) > 0){
		$myTplData=array(
			// 表示ボタンのセット
			'button_array'	=>setButton(),
			// エラーメッセージのセット
			'myErrArray'	=>$myErrArray,
			'myLoginUser'	=>$myLoginUser,
			'myPageTitle'	=>'OpenPTA_UserEnty',
			'myAppName'		=>'admin'
		);
		
		// connectionのリリース
		$cnObj->closeConnection($conn);
		
		// 後処理
		include("../Myznala/myFooter.inc.php");
		return; 
	}
	
	// connectionのリリース
	//$cnObj->closeConnection($conn);
	
	
	/*
	 * データにnull値があった場合にデフォルト値を設定し、
	 * データに入力があった場合にはサニタイズする。
	*/
	// ID （採番）
	$newId = $adminuserObj->getNewId($conn);
	$adminuserObj->setId($newId);

	// adminid(必須入力)
	$adminuserObj->setAdminid($reqParm['adminid']);

	// password(必須入力)
	$adminuserObj->setPassword($reqParm['password']);

	// japanesename(必須入力)
	$adminuserObj->setName($reqParm['japanesename']);
	
	// E-mail(必須入力)
	$adminuserObj->setMbaddress($reqParm['mbaddress']);


	/*
	 * データを登録
	 */
	
	$conn->beginTransaction();
	$adminuserObj->insertAdminusers($conn);
	$conn->commit();
	
	// connectionのリリース
	$cnObj->closeConnection($conn);
	
	/* 正常終了メッセージ */
	/*$myMsgArray=array();
	$msgObj=new MsgBean();
	$msgObj->setMessage("登録が完了しました。マイページボタンを押してください。");
	$myMsgArray[0]=$msgObj;*/
	
	$myTemplate="../admin/templates/adminusersEntryFinish.tpl";
	$myTplData=array(
		'myLoginUser'	=>$myLoginUser,
		'myPageTitle'	=>'OpenPTA_UserEntyFinish',
		'myAppName'		=>'admin',

		// 表示ボタン
		'button_array'	=>nextButton()
	);

	// 後処理
	include("../Myznala/myFooter.inc.php");
	return;
};

	/*
	 * 入力チェックを行うための内部関数
	*/
	function validate($conn, $rParm, $adminuserObj){
		require_once('../Myznala/ErrorBean.class.php');
		// 入力必須チェック
		$eArr=array();
		$i=0;

		/* パスワード */
		// 入力必須チェック

		if($rParm['password'] == null || $rParm['password'] == ''){
			$eObj=new ErrorBean();
			$eObj->setField("ﾛｸﾞｲﾝﾊﾟｽﾜｰﾄﾞ");
			$eObj->setMessage("入力してください");
			$eArr[$i]=$eObj;
			$i++;
		}else {
			$pas1 = $rParm['password'];
			$pas2 = $rParm['password2'];
			//パスワード入力桁数チェック
			$len = mb_strwidth($pas1);
			if($len < 6){
				$eObj=new ErrorBean();
				$eObj->setField("ﾛｸﾞｲﾝﾊﾟｽﾜｰﾄﾞ");
				$eObj->setMessage("6文字以上で入力して下さい");
				$eArr[$i]=$eObj;
				$i++;
			}
			//確認用パスワードチェック			
			if($pas1 != $pas2){
				$eObj=new ErrorBean();
				$eObj->setField("ﾛｸﾞｲﾝﾊﾟｽﾜｰﾄﾞ");
				$eObj->setMessage("確認用パスワードと違います。");
				$eArr[$i]=$eObj;
				$i++;
			}
		}
		
		/* 名前 */
		// 入力必須チェック
		if($rParm['japanesename'] == null || $rParm['japanesename'] == ''){
			$eObj=new ErrorBean();
			$eObj->setField("名前");
			$eObj->setMessage("入力してください");
			$eArr[$i]=$eObj;
			$i++;
		}

		/* 携帯アドレス */
		// 入力必須チェック
		if($rParm['mbaddress'] == null || $rParm['mbaddress'] == ''){
			$eObj=new ErrorBean();
			$eObj->setField("携帯アドレス");
			$eObj->setMessage("入力してください");
			$eArr[$i]=$eObj;
			$i++;
		}
		
		/* ユーザーＩＤ */
		// 入力必須チェック
		if($rParm['adminid'] == null || $rParm['adminid'] == ''){
			$eObj=new ErrorBean();
			$eObj->setField("ユーザーＩＤ");
			$eObj->setMessage("入力してください");
			$eArr[$i]=$eObj;
			$i++;
		}else{
			// ダブり入力チェック
			$adminuserObj->setAdminid($rParm['adminid']);
			$ret = $adminuserObj->findAdminid($conn);
			if($ret){
				$eObj=new ErrorBean();
				$eObj->setField("ユーザーID");
				$eObj->setMessage("既に登録されています");
				$eArr[$i]=$eObj;
				$i++;
			}
		}
		
		return $eArr;
	}

	/* 
	 * ボタン初期化処理のための内部関数
	*/
	function setButton(){
		require_once('../Myznala/ButtonBean.class.php');
		
		$_bArr=array();
		require("../Myznala/debugLog.php");
		// 参加
		$_bObj=new ButtonBean();
		$_bObj->setId("admin-my-entry-button");
		$_bObj->setName("entry");
		$_bObj->setSrc("../admin/images/sanka.png");
		$_bObj->setAlt("参加");
		$_bArr[0]=$_bObj;

		// 戻る
		$_bObj=new ButtonBean();
		$_bObj->setId("admin-my-back-button");
		$_bObj->setName("back");
		$_bObj->setSrc("../admin/images/cancel.png");
		$_bObj->setAlt("戻る");
		$_bArr[1]=$_bObj;

		return $_bArr;
	}
	
	/* 
	 * 登録完了後ボタン処理のための内部関数
	*/
	function nextButton(){
		require_once('../Myznala/ButtonBean.class.php');
		
		$_bArr=array();
		require("../Myznala/debugLog.php");
		// 参加
		$_bObj=new ButtonBean();
		$_bObj->setId("admin-my-mypage-button");
		$_bObj->setName("mypage");
		$_bObj->setSrc("../admin/images/mypage.png");
		$_bObj->setAlt("次へ");
		$_bArr[0]=$_bObj;

		return $_bArr;
	}
?>